package main

import (
	"fmt"
	"io"
	"os"
)

/*
   1. io包下的Copy()方法
		Copy（dst,src） 为复制src 全部到 dst 中。

		CopyN(dst,src,n) 为复制src 中 n 个字节到 dst。

		CopyBuffer（dst,src,buf）为指定一个buf缓存区，以这个大小完全复制。

   2. ioutil包
      ioutil.WriteFile()
      ioutil.ReadFile()
      但由于使用一次性读取文件，再一次性写入文件的方式，所以该方法不适用于大文件，容易内存溢出
 */
func main() {

	/*
	   复制文件：
	*/
	srcFile :="/Users/chukun/work/other/a.txt"
	destFile:="/Users/chukun/work/other/b.txt"
	file01, err := os.Open(srcFile)
	if err !=nil {
		fmt.Println(err)
		panic(err)
	}
	file02,err:=os.OpenFile(destFile,os.O_WRONLY|os.O_CREATE,os.ModePerm)
	if err !=nil {
		fmt.Println(err)
		return
	}

	defer file01.Close()
	defer file02.Close()

	_, _ = io.Copy(file02, file01)


}
